home *** CD-ROM | disk | FTP | other *** search
Modula Implementation | 1988-08-16 | 1.7 KB | 68 lines |
- IMPLEMENTATION MODULE KermFini;
- (************************************************************************)
- (* Shut down remote server *)
- (* written: 14.12.85 Matthias Aebi *)
- (* last modification: 18.03.85 Matthias Aebi *)
- (************************************************************************)
-
- FROM Terminal IMPORT WriteString, Write, WriteLn;
- FROM KermRecv IMPORT RecvPacket;
- FROM KermSend IMPORT SendPacket;
- FROM KermParam IMPORT Packet, LMaxRetries;
- FROM KermMisc IMPORT PrtErrPacket;
-
- (************************************************************************)
- PROCEDURE Finish(command: CHAR);
- (************************************************************************)
- VAR
- recvPack : Packet;
- sendPack : Packet;
- typ : CHAR;
- num : CARDINAL;
- len : CARDINAL;
- numTry : CARDINAL;
-
- BEGIN
- numTry := 0;
- sendPack[0] := command; (* F->Finish, L->Bye/Logout *)
-
- LOOP
- SendPacket("G",0,1,sendPack);
- RecvPacket(typ, num, len, recvPack);
-
- CASE typ OF
- "Y","N":
- IF ((typ = "N") AND (num = 1)) OR (typ = "Y")
- THEN
- RETURN;
- END; |
-
- "E": (* got error packet *)
- PrtErrPacket(recvPack, len);
- EXIT; |
-
- "T": (* timeout (receive) *)
- INC(numTry); |
-
- "A": (* user abort *)
- EXIT;
-
- ELSE
- EXIT;
-
- END;
-
- IF numTry > LMaxRetries
- THEN
- EXIT;
- END;
- END;
-
- WriteLn;
- WriteString("Unable to logout server");
- WriteLn;
-
- END Finish;
-
- END KermFini.
-